From b7f7d7a8ec409b8051ed36f63bbe05187198543b Mon Sep 17 00:00:00 2001 From: "kaf24@firebug.cl.cam.ac.uk" Date: Fri, 5 May 2006 13:49:49 +0100 Subject: [PATCH] Adjust skb->truesize appropriately in netback driver. When you generate non-linear skb's as netback does, it is up to you to ensure that truesize reflects the size of paged part of the skb. Otherwise socket memory accounting in Linux falls apart. Thanks to the new check that David Miller added to TCP we were able to catch this bug. Signed-off-by: Herbert Xu --- linux-2.6-xen-sparse/drivers/xen/netback/netback.c | 1 + 1 file changed, 1 insertion(+) diff --git a/linux-2.6-xen-sparse/drivers/xen/netback/netback.c b/linux-2.6-xen-sparse/drivers/xen/netback/netback.c index a58e215163..10ddc8adaf 100644 --- a/linux-2.6-xen-sparse/drivers/xen/netback/netback.c +++ b/linux-2.6-xen-sparse/drivers/xen/netback/netback.c @@ -659,6 +659,7 @@ static void net_tx_action(unsigned long unused) skb->data_len = txreq.size - data_len; skb->len += skb->data_len; + skb->truesize += skb->data_len; skb->dev = netif->dev; skb->protocol = eth_type_trans(skb, skb->dev); -- 2.30.2